$OpenBSD: patch-platform_x11_pdfapp_c,v 1.8 2017/05/05 14:02:51 sthen Exp $
Index: platform/x11/pdfapp.c
--- platform/x11/pdfapp.c.orig
+++ platform/x11/pdfapp.c
@@ -26,8 +26,18 @@ enum
 static void pdfapp_showpage(pdfapp_t *app, int loadpage, int drawpage, int repaint, int transition, int searching);
 static void pdfapp_updatepage(pdfapp_t *app);
 
-static const int zoomlist[] = { 18, 24, 36, 54, 72, 96, 120, 144, 180, 216, 288 };
+static const int zoomlist[] = { 18, 21, 24, 30, 36, 44, 54, 62, 72, 83, 96, 107, 120, 131, 144, 160, 180, 197, 216, 250, 288 };
 
+static int fine_zoom_in(int oldres)
+{
+	return oldres+1;
+}
+
+static int fine_zoom_out(int oldres)
+{
+	return oldres-1;
+}
+
 static int zoom_in(int oldres)
 {
 	int i;
@@ -1044,6 +1054,12 @@ static void pdfapp_search_in_direction(pdfapp_t *app, 
 		return;
 	}
 
+	if (app && *app->search == '\0')
+	{
+		winrepaint(app);
+		return;
+	}
+
 	wincursor(app, WAIT);
 
 	firstpage = app->pageno;
@@ -1539,9 +1555,9 @@ static void handlescroll(pdfapp_t *app, int modifiers,
 	{
 		/* zoom in/out if ctrl is pressed */
 		if (dir < 0)
-			app->resolution = zoom_in(app->resolution);
+			app->resolution = ((modifiers & (1<<0)) ? fine_zoom_in : zoom_in)(app->resolution);
 		else
-			app->resolution = zoom_out(app->resolution);
+			app->resolution = ((modifiers & (1<<0)) ? fine_zoom_out : zoom_out)(app->resolution);
 		if (app->resolution > MAXRES)
 			app->resolution = MAXRES;
 		if (app->resolution < MINRES)
